![]() データ・プロセッサのパフォーマンス予測
专利摘要:
アプリケーション・プログラム(106)のタスクを実行するオペレーティング・システム(104)を有するデータ・プロセッサ(102)と、前記データ・プロセッサによる前記タスクの実行のパラメータおよびモードを制御する電力およびパフォーマンス・コントローラ(110、112、118)とを使ったデータ処理方法。前記電力およびパフォーマンス・コントローラは、前記タスクの非アクティブ期間を考慮に入れて前記タスクのための前記データ・プロセッサ(102)の要求されるパフォーマンスの推定を生成し、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整するパフォーマンス予測器(112)を含む。前記パフォーマンス予測器(112、124)は、前記タスクのそれぞれについて:・前記オペレーティング・システム(104)がその同じタスクの処理を続けるために利用可能である前記タスクの利用可能な非アクティブ期間と、・前記オペレーティング・システム(104)がその同じタスクの処理を続けるために利用可能でない前記タスクの利用不能な非アクティブ期間との間の区別をする。タスクの実行において締め切りを逃すのが少なくなり、サービス品質における実質的な改善が得られる。 公开号:JP2011508328A 申请号:JP2010540179 申请日:2007-12-28 公开日:2011-03-10 发明作者:ダラクア,ダニエル;ドリュー,ニゲル;バース,アンディ 申请人:フリースケール セミコンダクター インコーポレイテッド; IPC主号:G06F1-32
专利说明:
[0001] 本発明は、データ処理装置、データ処理方法およびコンピュータ・プログラム・プロダクトに関する。] 背景技術 [0002] 電力節減は絶えざる関心事であり、特に充電式バッテリーのような内部エネルギー源をもつ携帯機器においてそうである。データ・プロセッサの電力消費は、プロセッサが動作中(たとえば構成回路スイッチングあり)の動的電力およびプロセッサが動作していないが電源を受けている間(たとえばスイッチングなしの定常状態またはトランジスタ・オフ状態)の静的電力に大別される。静的またはリーク電力散逸は、回路が動作しているときにも起こるが、今日の技術では、これは動的電力散逸に比べれば小さい。] [0003] 電力浪費の源に対処するべくさまざまな電力節減技術が開発されてきた。多くは、より小さなシリコン・プロセス幾何、能動井戸バイアス(active well biasing)および自動アイドル検出回路といった完全にハードウェアの解決策である。他の技術は、データ・プロセッサの動作パラメータと電力消費との妥協を図る。一つのそのような技術は、動的電力管理(DPM: Dynamic power management)の名のもとに一般に知られている。DPMは、動作要求を満たすよう必要とされる最小限のパフォーマンスはもちながら、電力浪費を最小にするためにリアルタイムでそのハードウェア・モジュールの電力状態を設定するシステムを記述する。DPMは、動的電圧および周波数スケーリング(DVFS: dynamic voltage and frequency scaling)および動的プロセスおよび温度補償(DPTC: dynamic process and temperature compensation)といった、動作モードを動的に制御する技術ならびに低電力アイドル・モード(プロセッサが電力を受けているがクロックを受けていないドーズ(doze)およびプロセッサのいくつかのモジュールが動作電力を供給されないスリープ(sleep)など)を制御するためのアイドル時間予測を含む。] [0004] これらの技術について、ここでより詳細に見ておく。データ・プロセッサにおける実行中に、アプリケーション・プログラムおよび他のシステム・ソフトウェアがモニタリングされる。これらのアプリケーションのいくつかは、到来するパフォーマンス・電力ニーズを同定できる(「電力アウェア(power aware)」なソフトウェア)が、他の多くのアプリケーションはできない。到来するパフォーマンス・電力ニーズを知ることは、データ・プロセッサのオペレーティング・システム内のソフトウェア・ドライバおよび電力ハンドラを使ってハードウェア電力節減機構を駆動する電力マネージャを制御するために使用できる。] [0005] 一つの動的電力節減技法は、論理回路がアイドリングしているときにその論理回路へのクロックを遅くするまたは無効にすることである。クロック・ゲーティング(clock gating)またはクロック・フリージング(clock freezing)は、クロックがゲート・オフされるレジスタ中のみならず、レジスタ信号がもはや伝搬されなくなるのでそれらのレジスタに接続された組み合わせ論理回路中でも電力を節減する。クロック・ゲーティングはオン・オフするのが非常に高速なので、クロック・ゲーティングが正しいタイミングで行われていれば、そのような回路を使うソフトウェアは影響されない。静的またはリーク電力散逸はより大胆な方策を必要とする。電力ゲーティング(power gating)と呼ばれる一つの解決策は、装置またはサブコンポーネントの電源をオフにすることである。電力ゲーティングは、動的電力およびリーク電力の両方を低減させ、オンチップでローカルに実装することも、外部的に電源ユニットにおいて実装することもできる。] [0006] もう一つの電力節減技術は、パフォーマンスが要求されない時(アイドリング)または可変パフォーマンスが要求されるときに回路への供給電圧を変えることである。アイドル・モードの間、装置またはサブコンポーネントがアクティブ状態から低パフォーマンス状態に遷移すると、ハードウェアはより高い電圧からより低い電圧に自動的に切り替わることができる。一例は、スリープまたはストップ・モードにはいると動作電圧が自動的に低下させられるプロセッサ・コア設計である。このモードではコアはクロックされないが、それでも定常電流リークは被る。コアは命令や他の機能を実行する必要がないので、動作電圧は、内部状態データが正しく保持されることを保証するのにちょうど十分な値にまで下げることができる。これは時に、ストップ・モード電圧スケーリング(stop mode voltage scaling)と呼ばれる。] [0007] 可変パフォーマンスが必要とされる非アイドリング状況は、動作周波数、動作電圧またはその両者を変えることによって対処される。動的周波数スケーリング(Dynamic Frequency Scaling)は、集積回路における動的電力消費はほぼ動作周波数に比例するという観察に依拠する。したがって、要求される処理パフォーマンスを満たす最低の値にまでプロセッサのクロック周波数を下げることは意味がある。これは、ソフトウェアはより低速で走るものの、受け容れ可能な余裕をもってそのリアルタイム締め切りは満たすということを意味する。これは動的に行われ、どの周波数設定が受け容れ可能かを決定するよう適応された電力管理ソフトウェア(power management software)を必要とする。動作電圧もスケーリングされれば、よりよい電力節減が達成できる。電力は電圧の二乗で変化するので、電圧スケーリングを使えば二乗則の電力節減が潜在的には可能である。電圧スケーリングおよび周波数スケーリングの両方が使われる場合、動的電圧および周波数スケーリング(DVFS)と呼ばれるその組み合わせは、動作電圧の三乗にほぼ比例する電力節減を与えることができる。] [0008] これらの二乗則および三乗則の電力節減は、電圧制御回路の構成および効率のみならず、電圧/周波数設定を設定するために使われる予測ソフトウェアの効率にも依存する。所与の集積回路設計について、動作電圧は最大使用可能動作周波数を決定する。電圧は(よって周波数も)、最小限の電力浪費に対して、要求されるパフォーマンスの兼ね合いをつけるようスケーリングされる。電圧を上下にスケーリングさせる(よって消費電力を増減する)とき、動作周波数もスケーリングされ、それとともに装置の利用可能なパフォーマンスも上下する。利用可能なパフォーマンスは、設計の動作許容値内に留まるよう制御されるべきである。DVFS技術は、変動するが継続するソフトウェア作業負荷に対処するものである。] [0009] 実行モード(run modes)およびアイドル・モード(idle modes)の両方について、プロセッサ速度‐電圧レベルのようなシステム・ハードウェアのパフォーマンス電力状態を動的に制御するために、パフォーマンス予測およびパフォーマンス設定アルゴリズムが利用可能である。プロセッサ上の短期ソフトウェア負荷を予測することに基づいてプロセッサの動作周波数および電圧を設定する、DVFSベースのプロセッサとともに使うアルゴリズムが存在する。このクラスの一例のアルゴリズムは、OSにおいて走っている各タスクの最近のソフトウェア負荷(すなわち、メモリにロードされているプログラム命令の集合)の履歴を追跡し、それを外挿して次にくる期間における要求されるパフォーマンスの予測を導出する。この技法は、タスクの最近の過去の作業負荷と近い将来の作業負荷の間にそこそこの相関を想定している。OSカーネルによってタスク・ステータス情報が供給される。このアルゴリズムは、(全タスクについての)総合作業負荷を予測するために作業負荷および使われていないアイドリング時間の推定を維持する。この規格化されたMCU処理レベルは、付随するソフトウェアによって、使用される個別のDVFS機構に必要とされる関連する周波数および電圧設定に変換される。このアルゴリズムは、変化するソフトウェア負荷に応答して新たな予測を継続的に再計算し、供給する。原理的には、このアルゴリズムは、各OSタスクについて個々の締め切りをちょうど満たす要求されるプロセッサ・パフォーマンスを予測する。このアルゴリズムは、作業負荷があまり急速に変化しないOSタスクについてはそこそこよく機能する。] 発明が解決しようとする課題 [0010] この種のアルゴリズムによって達成される実際のパフォーマンスおよび電力節減は、理論的計算に比べると満足いくものではなかった。本発明の一つの目的は、データ・プロセッサの達成可能なパフォーマンスおよび電力節減を改善することである。] 課題を解決するための手段 [0011] 本発明は、付属の請求項記載のようなデータ処理装置、データ処理方法および該データ処理方法を実行するためのコンピュータ・プログラムを提供する。] 図面の簡単な説明 [0012] 例として与えられる、本発明のある実施形態に基づく、動的電圧および周波数スケーリング(「DVFS」)を用いるデータ処理装置の一例の概略図である。 既知のDVFSプロセスにおけるパフォーマンス予測のタイミング図の例である。 図1のデータ処理装置におけるDVFSプロセスにおけるパフォーマンス予測のタイミング図の例である。 第一のタスクについての図3のDVFSプロセスのフローチャートである。 第二のタスクについての図3のDVFSプロセスのフローチャートである。] 図1 図3 実施例 [0013] 図面の図1は、例として与えられる、本発明のある実施形態に基づく、動的電圧および周波数スケーリング(「DVFS」)を用いるデータ処理装置100を示している。この例において、本発明は、ビデオ・プレーヤー・アプリケーションに適用されるものとして例解されるが、本発明が他の多くのアプリケーションにも適用可能であることは理解されるであろう。] 図1 [0014] 装置100は、オペレーティング・システム(「OS」)104、ビデオ・プレーヤー・アプリケーション・プログラム106、他のアプリケーションを実行するための他のシステム・ソフトウェア108およびプロセッサの動作周波数および電圧をCPU102上での短期ソフトウェア負荷の予測に基づいて設定するDVFSプロセッサ110を含む中央処理装置(「CPU」)102を有する。] [0015] 本装置はまた、重要な締め切りの前に完了されるべき各タスクについて要求されるパフォーマンスを予測するパフォーマンス予測器112をも含む。該パフォーマンス予測器は、OS104からビデオ・プレーヤー・アプリケーション・プログラムのタスク実行時間に関する入力114を受け取る。パフォーマンス予測器112は、各タスクについてパフォーマンス・レベル出力信号116を生成し、これをDVFSハードウェア118に与える。DVFSハードウェア118は、選択された電圧およびクロック周波数レベルを定義する信号120および122を供給する。これらの信号をDVFSプロセッサ110が各タスクについてCPUに加える。] [0016] パフォーマンス予測器112は、OSにおいて走っている各タスクの最近のソフトウェア負荷の履歴を追跡し、それを外挿して次にくる期間における要求されるパフォーマンスの予測を導出するアルゴリズムを使って、各タスクについて、CPUに対する短期ソフトウェア作業負荷を予測する。本発明のこの実施形態では、パフォーマンス予測器112は、ブロッキングおよび非ブロッキングのオペレーティング・システム・アクセス・コールの間の区別をするよう構成される。] [0017] データ処理装置における入力および出力動作は、データの処理に比べてきわめて遅いことがありうる。たとえば、実行に10ミリ秒かかるフェッチ(fetch)動作の間に、1ギガヘルツでクロックされるプロセッサは1000万命令処理サイクルを実行することだってできる。] [0018] タスク「A」についての入力および出力動作(「I/O」)への簡単なアプローチは、アクセスを開始し、それが完了するのを待ってから、タスクAまたさらには他のタスクを処理することである。そのようなアプローチ(同期I/OまたはブロッキングI/Oと呼ばれる)は、ある型のI/Oについては必要であるが、I/Oが進行中はプログラムの進行がブロックされ、システム資源はアイドルになる。プログラムが多くのI/O動作を行う場合、これは、プロセッサがその時間のほとんどすべてを、I/O動作が完了するのを待ってアイドルなまま過ごすことがありうるということを意味する。] [0019] 処理タスクによっては、あるタスクAについてI/Oを開始し、次いでそのI/Oが完了していることを要求しない処理、特に他のタスクの処理を実行することが可能である。これら他のタスクについて、このI/Oは非同期的または非ブロッキングI/Oである。I/Oが完了していることに実際に依存するタスクAのような任意のタスク(これは、入力値を使用することおよび書き込み動作が完了していることを保証することを必要とするクリティカルな動作の両方を含む)は、やはりI/O動作が完了するのを待たねばならず、よってやはりブロックされるが、このI/O動作に対する依存性をもたない他の処理タスクは継続できる。] [0020] タスク「A」の非同期的入出力または非ブロッキング入出力とは、タスクA自身はそのI/Oの完了を待たねばならないが、その入出力伝送が終わる前に他のタスクを処理することをオペレーティング・システムに許すような入出力処理の形である。他方、そのアプリケーションがタスクAのためのOS資源(CPU)をコールすると、そのコールがそのアプリケーションが他のタスクのためにOSを解放することを強制するのでない限り、非ブロッキングI/Oコールの期間中の他のタスクの実行についてでさえもOSをブロックすることがありうる。前記のような場合には、タスクA自身がOS資源の欠如によってブロックされる。] [0021] 必要とされるプロセッサ・パフォーマンスを計算するためにアイドル期間を考慮に入れることにより、DVFSコントローラは、締め切りおよびその他の要求を満たすのにちょうど十分なようにパフォーマンスを調整できる。図1に示される本発明の実施形態におけるパフォーマンス予測器112は、所与のタスクについて: ・OSコールが中断されている間、たとえば少なくともタスクAがI/Oアクセスの完了を要求する場合の待ち期間の間、タスクA以外のタスクは処理され続けることができる非ブロッキング・オペレーティング・システム・アクセス・コールに関係する非アクティブ期間と、 ・タスクAがI/Oアクセスの完了を要求する場合の待ち期間の間、タスクAがOSを解放せず、当該コール後は当該オペレーティング・システム・アクセスの完了まで、何のタスクも処理できないブロッキング・オペレーティング・システム・アクセス・コールとの間の区別をするよう構成される。] 図1 [0022] 図1の装置の電力およびパフォーマンス・コントローラ機能は、各タスクについてのパフォーマンス予測器112のアイドル時間計算を、オペレーティング・システム・アクセスがそのタスクに利用可能であり(「ブロックされていない」)よって他のタスクには拒否されているそのタスクの非アクティブ期間と、オペレーティング・システム・アクセスがそのタスクに利用可能でなく(「ブロックされている」)よって他のタスクに利用可能であるそのタスクの非アクティブ期間との間の区別をするよう修正するアイドル時間補償器を含む。CPUが非アクティブであったがタスクAに専用でありよって他のタスクにとってはブロックされていた場合のタスクAの非アクティブ期間については、CPUは、処理タスクAのそのアクティブ期間の間、より低速で走り、そうでなければアイドルとなる非アクティブ期間の一部を使用することができる。逆に、CPUが非アクティブであったが他のタスクによってブロックされておりよってタスクAにとって利用不能であった場合のタスクAの非アクティブ期間については、CPUはそのアクティブ期間の間、より低速で走ることができたと想定することは誤りである。これは、CPUは、そのアクティブ期間の間、いずれにせよより低速で走って非アクティブ期間の一部をタスクAのために使うことはできなかったからである。逆に、タスクAにとってブロックされている非アクティブ期間については、CPU102が他の何らかのタスクについて利用可能であった間にそれらの他のタスクを処理しなかった場合には、それらの他のタスクのそれぞれの待ち期間は、可能なパフォーマンス低下および電力消費節減を計算する際、それらの他のタスクについて正しく考慮に入れられることができる(だがタスクAについては考慮に入れない)。] 図1 [0023] 具体的には、アイドル時間補償器124は、OS104から、信号126、128および130を受信する。これらの信号はそれぞれ、現在のアプリケーション・タスクのOSアクセス・コールが他のタスクについてCPUの使用についてブロッキングであるか非ブロッキングであるか、現在のタスクに関連付けられた未補正の(「生の」)アイドル時間および現在のタスクに関する他の情報を同定する。次いでアイドル時間補償器124は、各タスク134についての生のアイドル時間から、CPUがいずれにしろその同じタスクを実行するために利用不能であった非アクティブ時間があればそれを減算し、134で同定される各タスクについてこうして修正されたアイドル時間計算を定義する出力132をパフォーマンス予測器112に与える。] [0024] より詳細には、本発明のある実施形態のこの例では、以下のステップを使ってパフォーマンス推定が導出される。本発明のそのような実施形態を実装するために他のアルゴリズムが使用されることもできることは理解されるであろう。] [0025] まず、最近の過去の期間(たとえばOSにもよるが100ms)の間の一連の時間スロットi=1ないしNの間のタスクのフルスピード等価作業負荷(full-speed equivalent workload)Workfseが] [0026] を使って計算される。ここで、tiは時間スロットiの長さであり、piはその時間スロットの間のCPUパフォーマンス・レート(performance rate)である。] [0027] 次に、より長い期間にわたる作業負荷の減衰平均(decaying average)が次式を使って計算される:] [0028] ここで、kは重み付け因子である。] [0029] 次いで、要求される締め切りに行くための時間の減衰平均が次式を使って計算される:] [0030] ここで、Idlefseは、タスクについてのアイドル時間を、そのタスクについてCPUが利用不能であったアイドル時間を減算することによって補償したものである。] [0031] 最後に、計算された締め切り時間をちょうど満たすのに必要とされるパフォーマンスの割合の調整が、次式] [0032] を使って計算される。; アイドル時間補償器124の効果の図解が、アイドル時間補償器124なしのDVFSシステムのはたらきを示す図2と、アイドル時間補償器124のある図3に示されている。] 図2 図3 [0033] 図2および図3において、ビデオ・アプリケーション・プログラムは、タスクAについての入力バッファ(図示せず)から再生されるべきn個の時間スロット200のフレームを要求するものとして示されている。各フレームのあとには、それらのフレームの処理が同期信号を待ちCPUが非アクティブでありうるスロット202が続く。図面に示した例では、タスクA以外のタスクはOSによるサービスをコールしない。しかしながら、同期信号を待つ間、タスクAについての次の同期信号がCPUにおける処理を必要とする次のスロット200より十分前に他のタスクがCPUによって完了されるのであれば、タスクA以外のタスクを実行するためにOSが利用可能となる。] 図2 図3 [0034] CPU102は、アクティブ期間208と非アクティブ期間210の間を交互に経る。その間に現在のタスクが完了され、他のタスクがどれもOSによるサービスをコールしない場合にはCPUはアイドルにされる。ビデオ・アプリケーション・プログラム104によるビデオ・フレームの処理は、入力バッファが空になるまでこのようにして続く。その後の非アクティブ期間204および206の間、ビデオ・アプリケーション・プログラムは、ローカルな入力バッファにすでに存在するのでない新しいフレーム・データのフェッチを要求するOSへのシステム・コールをし、I/Oインターフェース(たとえばネットワーク・ドライバまたはディスク・ドライバ)がそのデータを入力からフェッチしてバッファに入れる間、OSはタスクAを処理するために利用可能ではない。この遅延された完了は、その意味において非同期動作である。OS104は、コールしたビデオ・プログラムに制御を返す。そのビデオ・プログラムが現在のフレームにおけるその作業を完了すると、スロット200の終わりにOSに制御を譲る。スロット200はアクティブである(たとえば実行モードにある)DVFSプロセッサ110に対応する。タスクAは、OSがタスクAのためのデータを処理するのに利用可能でない非アクティブ期間204および206の間、CPUを使用できない。タスクAは、その間に他のタスクがCPUをブロックしていなければ、バッファ内にデータが利用可能になるとすぐ再開できる。] [0035] アイドル時間補償器124がないときのパフォーマンス予測器112、電圧および周波数設定ハードウェア118およびDVFSプロセッサ110を含むパフォーマンス・コントローラの動作が図2に示されている。時間に対する周波数(および/または供給電圧)のグラフ212によって示されるように、最初、CPUは通常速度で、フル・クロック周波数をもって走る。2非アクティブ期間210後、要求されるパフォーマンスの計算は、パフォーマンス・コントローラに、214に示されるようにCPU102を減速させる。これにより、CPUのアクティブ期間はより長い時間にわたってより低速で走り、対応してエネルギーが節減され、アイドル期間の継続時間が短縮される。タスクAのアクティブ期間は、それでも、216で示されるスロット締め切りの前に満足いくように完了される。] 図2 [0036] しかしながら、入力バッファが空であり、204および206において、プロセスが入力からバッファへのさらなるデータのフェッチをコールするとき、パフォーマンス・コントローラは、218で示されるようにCPUパフォーマンスのスピードを再び低下させる。要求されるパフォーマンスを計算する際に、データがバッファ中にフェッチされている間CPUがタスクAを処理できないアイドル期間220も含めて、現在のタスクAのすべてのOS非アクティブ期間が考慮に入れられるからである。実際のところ、このパフォーマンス・コントローラは、タスクが再開するためにデータが利用可能になってからタスクを適時に完了するために要求されるパフォーマンスを過小評価してしまう。222においてデータが利用可能であり、CPU102がアクティブなスロットを再開するとき、アクティブ期間の継続時間は引き延ばされすぎ、アクティブ期間を完了するための締め切り224を行きすぎてしまう。実際上は、そのように締め切りを逃すことは、システムの最適でない振る舞い、特に安定性の欠如および不正確な予測につながる。これは、ビデオ・プレーヤー・アプリケーションにおけるたとえば欠けたビデオ・フレームのような劣化したサービス品質に帰結する。そのような最適でない振る舞いは、比較的安定した作業負荷条件にあるプロセスの典型的なモデル化からや、作業負荷およびパフォーマンス予測器の簡単な非OS試験からは明白でない。] [0037] ここで図3に目を向けると、アイドル時間補償器124をもつDVFSシステムのはたらきが示されており、類似の要素は図2と同じ参照符号によって指示されている。214において、ブロッキングするアイドル期間202のため、CPUパフォーマンスのスピードの同じ低下が起こるが、アイドル時間補償器124が生のアイドル時間指示128を補正し、修正されたアイドル時間指示は今やタスクAに利用可能でないアイドル時間220を無視するようになる。結果として、パフォーマンス・コントローラは、226においてアイドル期間220に応答してCPU102のスピードのさらなる低下をさせないという正しい動作をし、CPUはその後のアクティブ期間228の間、不変のスピードで走り、それにより、締め切り224前に完了される。そのような実際的な応用でのCPUの実際の使用においては、締め切りを逃すことを回避することにおいて、実質的な改善が得られることが見出される。よって、モデル化および試験が必ずしも改善を明らかにするのでなくても、実際的な使用の場合においてシステム安定性およびサービス品質が大幅に改善される。] 図2 図3 [0038] 図4および図5は、ビデオ・プレーヤー・プログラム106、OS104のカーネルならびにDVFSプロセッサ110、パフォーマンス予測器112、DVFSハードウェア118およびアイドル時間補償器124を含む諸パフォーマンス・コントローラ・モジュールの間の処理ステップの序列の一例を示している。図4は、図2および図3で214において、図3で226において示される有効な電圧/周波数計算の場合のプロセスを示している。図5は、図2で218において示される有効でない電圧/周波数計算の場合のプロセスを示している。] 図2 図3 図4 図5 [0039] まず図4を参照すると、図示したプロセス400は、402でフレームをデコードし、404でデコードされたフレームをディスプレイに送ることをもって始まる。これは図2および図3の再生nのステップ200に対応する。フレームの終わりに、ビデオ・プレーヤー・アプリケーションは、406で同期ストリームを待ってスリープする。OSカーネル104におけるスケジューラは、408で、実行待ち行列に実行すべきプロセスがないことに留意すること(noting)によってスリープ中のビデオ・プレーヤー・アプリケーションに応答し、410において、アイドル期間をスケジュールして、エネルギー消費を節約する。これは、図2および図3のアイドル・ステップ202に対応する。アイドル時間i1が412において同定され、アイドル時間補償器124に送られる。アイドル時間補償器124は414において、そのアイドル時間が、OSがタスクを処理するために利用可能であった時間であり、タスクAがI/Oを待っている時間ではないことを検証し、416でOSカーネル104内のスケジューラに信号を送る。本発明のこの実施形態では、アイドル時間補償器は、OSが現在のタスクAのために利用可能であった場合の利用可能な非アクティブ期間とそうでなかった利用可能でない非アクティブ期間との間の区別をするときに、その期間がなぜ非アクティブであるかの理由を考慮に入れる。] 図2 図3 図4 [0040] スケジューラは、418で次の実行可能タスクを取り上げ、このタスクをアイドル時間補償器124を通じてパフォーマンス予測器112に対して同定する。420において、パフォーマンス予測器112は、ステップ414からのアイドル期間についての情報i1を諸タスクについての減衰平均アイドル時間蓄積器中に含め、そのタスクについての適切な周波数/電圧を計算し、422において、対応するタスク実行時間およびアイドル時間を定義する。すると、ビデオ・プレーヤー・アプリケーションはOSに、424において次のフレームのデコードし、426においてデコードされたフレームをディスプレイに送ることを開始するよう指示できる。] [0041] 図5に示されるプロセスにおいて、図示されたプロセスは、ビデオ・プレーヤー・アプリケーション106が、入力バッファからの全フレームを処理し終わって入力バッファが空になり、プレーヤーがネットワーク・ドライバに新たなフレームをフェッチすることを求めなければならない状態502に到達することをもって始まる。これは、図2および図3の待ちステップ204および206の前の再生ステップの終わりに対応する。506において、OSカーネル104は、タスクAをネットワーク・ドライバのための待ち行列中に入れることによって、この状況に応答する。508では、この例では、OSカーネル104はこの時点では実行すべき他のタスクは持たず、510において、CPUのためにアイドル期間i2をスケジュールして、エネルギーの消費を節約する。これは図2および図3のアイドル・ステップ204および206に対応する。アイドル時間i2は他のタスクのために活用可能であろうが、他のタスクを処理するかどうかによらず、OSはタスクAのためには利用可能ではない。512においてアイドル時間i2が同定され、アイドル時間補償器124に送られる。514においてアイドル時間補償器124が、そのアイドル時間がタスクAのために利用可能であることを検証し、516において、タスクAのためのデータが準備できたときに、OSカーネル104内のスケジューラに信号を送る。これは、518のスケジューラが520において次の実行可能なタスクを取り上げ、このタスクをアイドル時間補償器124を通じてパフォーマンス予測器112に対して同定することをトリガーする。パフォーマンス予測器112は、522で、タスクAおよび他のタスクについて適切な周波数/電圧を計算し、ステップ514からの情報に起因するタスクAのための減衰平均アイドル時間蓄積器からのアイドル期間i2は消去するが、ステップ514からのアイドル時間i2についての情報は他のタスクのための減衰平均アイドル時間蓄積器中に含める。パフォーマンス予測器112は、524において、対応するタスク実行時間およびアイドル時間を定義する。このデータは、ビデオ・プレーヤー・アプリケーションに渡され、ビデオ・プレーヤー・アプリケーションは526において次のフレームをデコードし、528においてデコードされたフレームをディスプレイに送ることを開始する。] 図2 図3 図5 [0042] 図面に示されている本発明の実施形態は、そうした実施形態の特徴を例解する簡単なプロセスである。本発明のこれらの実施形態が、高度なランタイム・パフォーマンス・アルゴリズムに適用可能であり、たとえば複数の並行予測器、ポリシーおよび電力コスト規則をサポートする標準化されたソフトウェア・フレームワークを使用できることは理解されるであろう。本発明のこれらの実施形態は、さまざまな市販のオペレーティング・システムのシステム・ソフトウェアとともに走ることができる。]
权利要求:
請求項1 アプリケーション・プログラムのタスクを実行するオペレーティング・システムを有するデータ・プロセッサと、前記データ・プロセッサによる前記タスクの実行のパラメータおよびモードを制御する電力およびパフォーマンス・コントローラとを有するデータ処理装置であって、前記電力およびパフォーマンス・コントローラは、前記タスクの非アクティブ期間を考慮に入れて前記タスクのための前記データ・プロセッサの要求されるパフォーマンスの推定を生成し、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整するパフォーマンス予測器を含み、前記パフォーマンス予測器は、前記タスクのそれぞれについて:・前記データ・プロセッサがその同じタスクを処理するために利用可能であった前記データ・プロセッサの利用可能な非アクティブ期間であって、その同じタスクについて要求されるーパフォーマンスの前記推定を生成する際に含められる利用可能な非アクティブ期間と、・その同じタスクが処理のために利用可能ではなく前記データ・プロセッサが他のタスクを処理するために利用可能でなかった利用不能な非アクティブ期間および前記データ・プロセッサがその同じタスクを処理するためには利用可能でなかったが他のタスクを処理していた利用不能なアクティブ期間であって、その同じタスクについて要求されるーパフォーマンスの前記推定を生成する際に除外される利用不能な期間との間の区別をするよう構成される、データ処理装置。 請求項2 前記データ・プロセッサは、あるタスクについての利用不能な非アクティブ期間に応答して前記オペレーティング・システムを、その非アクティブなタスクによってブロックされていなければ別のタスクに切り換える、あるいは処理されるべく準備ができた他のタスクがなければアイドルにする、請求項1記載のデータ処理装置。 請求項3 前記電力およびパフォーマンス・コントローラが、あるタスクについての前記推定を生成する際に、そのタスクについての前記利用可能な非アクティブ期間には応答するが前記利用不能な期間には応答しない、請求項1または2記載のデータ処理装置。 請求項4 前記タスクは入出力アクセスを含み、前記電力およびパフォーマンス・コントローラはあるタスクの前記入出力アクセスに応答してそのタスクについて前記推定を生成する際に対応する非アクティブ期間を排除する、請求項1ないし3のうちいずれか一項記載のデータ処理装置。 請求項5 前記電力およびパフォーマンス・コントローラが、あるタスクについて前記推定を生成する際に、そのタスクについての作業負荷の減衰平均に応答する、請求項1ないし4のうちいずれか一項記載のデータ処理装置。 請求項6 前記電力およびパフォーマンス・コントローラが、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整する際に、前記データ・プロセッサのクロック周波数および/または供給電圧を調整するよう構成されている、請求項1ないし5のうちいずれか一項記載のデータ処理装置。 請求項7 アプリケーション・プログラムのタスクを実行するオペレーティング・システムを有するデータ・プロセッサと、前記データ・プロセッサによる前記タスクの実行のパラメータおよびモードを制御する電力およびパフォーマンス・コントローラとを使ったデータ処理方法であって、前記電力およびパフォーマンス・コントローラは、前記タスクの非アクティブ期間を考慮に入れて前記タスクのための前記データ・プロセッサの要求されるパフォーマンスの推定を生成し、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整するパフォーマンス予測器を含み、前記パフォーマンス予測器は、前記タスクのそれぞれについて:・前記データ・プロセッサがその同じタスクの処理を続けるために利用可能である前記データ・プロセッサの利用可能な非アクティブ期間と、・その同じタスクが処理のために利用可能ではなく前記データ・プロセッサが他のタスクを処理するために利用可能でなかった利用不能な非アクティブ期間および前記データ・プロセッサがその同じタスクを処理するためには利用可能でなかったが他のタスクを処理していた利用不能なアクティブ期間との間の区別をし、利用不能な期間はその同じタスクについて要求されるーパフォーマンスの前記推定を生成する際に除外される、データ処理方法。 請求項8 前記データ・プロセッサは、あるタスクについての利用不能な非アクティブ期間に応答して前記オペレーティング・システムを、その非アクティブなタスクによってブロックされていなければ別のタスクに切り換える、あるいは処理されるべく準備ができた他のタスクがなければアイドルにする、請求項7記載のデータ処理方法。 請求項9 前記電力およびパフォーマンス・コントローラが、あるタスクについての前記推定を生成する際に、そのタスクについての前記利用可能な非アクティブ期間には応答するが前記利用不能な期間には応答しない、請求項7または8記載のデータ処理方法。 請求項10 前記タスクは入出力アクセスを含み、前記電力およびパフォーマンス・コントローラはあるタスクの前記入出力アクセスに応答してそのタスクについて前記推定を生成する際に対応する非アクティブ期間を排除する、請求項7ないし9のうちいずれか一項記載のデータ処理方法。 請求項11 前記電力およびパフォーマンス・コントローラが、あるタスクについて前記推定を生成する際に、そのタスクについての作業負荷の減衰平均に応答する、請求項1ないし10のうちいずれか一項記載のデータ処理方法。 請求項12 前記電力およびパフォーマンス・コントローラが、前記推定に応答して前記データ・プロセッサのパフォーマンスおよび電力消費を調整する際に、前記データ・プロセッサのクロック周波数および/または供給電圧を調整する、請求項1ないし11のうちいずれか一項記載のデータ処理方法。 請求項13 データ処理装置にインストールされたときに請求項7ないし12のうちいずれか一項記載のデータ処理方法を実行するよう適応されたコンピュータ・プログラム。
类似技术:
公开号 | 公开日 | 专利标题 US9864427B2|2018-01-09|Power efficient processor architecture US9600283B2|2017-03-21|Single instruction for specifying a subset of registers to save prior to entering low-power mode, and for specifying a pointer to a function executed after exiting low-power mode US20190235614A1|2019-08-01|Conserving Power by Reducing Voltage Supplied to an Instruction-Processing Portion of a Processor Doweck et al.2017|Inside 6th-generation intel core: New microarchitecture code-named skylake US9348628B2|2016-05-24|Computer system US9703351B2|2017-07-11|Method and apparatus for power control US9874926B2|2018-01-23|Distribution of tasks among asymmetric processing elements US20160034022A1|2016-02-04|Dynamic core switching DE112011103193B4|2015-10-22|Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung US8775838B2|2014-07-08|Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data US9354689B2|2016-05-31|Providing energy efficient turbo operation of a processor US6158012A|2000-12-05|Real-time power conservation and thermal management for computers JP4764696B2|2011-09-07|半導体集積回路装置 US6161187A|2000-12-12|Skipping clock interrupts during system inactivity to reduce power consumption US7194385B2|2007-03-20|Performance level setting of a data processing system US8190863B2|2012-05-29|Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction Pouwelse et al.2001|Energy priority scheduling for variable voltage processors EP2115550B1|2020-01-22|Methods and systems for power management in a data processing system US9152199B2|2015-10-06|Power state dependent wake-up alarm RU2520411C2|2014-06-27|Устройство обработки данных и способ переключения рабочей нагрузки между первой и второй компоновкой схем обработки US7137117B2|2006-11-14|Dynamically variable idle time thread scheduling US5218704A|1993-06-08|Real-time power conservation for portable computers TW454117B|2001-09-11|Method and system for controlling computer operation in response to central processing unit operating characteristics US8307369B2|2012-11-06|Power control method for virtual machine and virtual computer system EP2887182A1|2015-06-24|Rescheduling workloads to enforce and maintain a duty cycle
同族专利:
公开号 | 公开日 EP2227727B1|2016-08-24| EP2227727A1|2010-09-15| US20100287396A1|2010-11-11| US8452999B2|2013-05-28| WO2009083753A1|2009-07-09| JP5312478B2|2013-10-09|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JP2003337713A|2002-05-21|2003-11-28|Hitachi Ltd|プロセッサの制御方法| JP2004199659A|2002-11-12|2004-07-15|Arm Ltd|データ処理システムの性能カウンタ| JP2005062956A|2003-08-14|2005-03-10|Toshiba Corp|スケジューリング方法および情報処理システム|CN103926995A|2014-04-16|2014-07-16|乐视致新电子科技(天津)有限公司|智能终端及增强其续航性能的方法、装置| JP2014219788A|2013-05-07|2014-11-20|富士通株式会社|情報処理装置、省電力化制御方法および省電力化制御プログラム|US7058824B2|2001-06-15|2006-06-06|Microsoft Corporation|Method and system for using idle threads to adaptively throttle a computer| US20030233592A1|2002-06-14|2003-12-18|Hung-Ming Lin|Power saving method using frame rate control in computer graphics systems| US7194385B2|2002-11-12|2007-03-20|Arm Limited|Performance level setting of a data processing system| US20080147357A1|2006-12-15|2008-06-19|Iintrinisyc Software International|System and method of assessing performance of a processor|US9128703B1|2008-10-30|2015-09-08|Amazon Technologies, Inc.|Processor that transitions to an idle mode when no task is scheduled to execute and further enters a quiescent doze mode or a wait mode depending on the value of a reference counter| US8276015B2|2009-02-23|2012-09-25|International Business Machines Corporation|Managing the power-performance range of an application| US8397088B1|2009-07-21|2013-03-12|The Research Foundation Of State University Of New York|Apparatus and method for efficient estimation of the energy dissipation of processor based systems| US8909950B1|2010-04-18|2014-12-09|Aptima, Inc.|Systems and methods of power management| US8776069B2|2010-12-07|2014-07-08|International Business Machines Corporation|Energy and performance optimizing job scheduling| TWI493332B|2011-11-29|2015-07-21|Intel Corp|用於電力管理的方法與設備及其平台與電腦可讀取媒體| US9917739B2|2012-02-20|2018-03-13|Aptima, Inc.|Systems and methods for network pattern matching| US8649765B1|2012-08-08|2014-02-11|Telefonaktiebolaget L M Ericsson |Communication apparatus using biometrics| US9465620B2|2012-12-20|2016-10-11|Intel Corporation|Scalable compute fabric| US9285858B2|2013-01-29|2016-03-15|Blackberry Limited|Methods for monitoring and adjusting performance of a mobile computing device| EP2759907A1|2013-01-29|2014-07-30|BlackBerry Limited|Methods for monitoring and adjusting performance of a mobile computing device| US20140237272A1|2013-02-19|2014-08-21|Advanced Micro Devices, Inc.|Power control for data processor| US10409353B2|2013-04-17|2019-09-10|Qualcomm Incorporated|Dynamic clock voltage scalingbased on application performance in a system-on-a-chip , and related methods and processor-based systems| JP6175980B2|2013-08-23|2017-08-09|富士通株式会社|Cpuの制御方法、制御プログラム、情報処理装置| US9329663B2|2013-09-09|2016-05-03|Apple Inc.|Processor power and performance manager| US9501128B2|2013-10-30|2016-11-22|Globalfoundries Inc.|Cooperative reduced power mode suspension for high input/outputworkloads| FR3014215B1|2013-12-03|2015-12-11|Thales Sa|Procede de gestion des ressources de calcul d'applications logicielles| KR20160018030A|2014-08-07|2016-02-17|삼성전자주식회사|전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치| CN106164888A|2015-02-26|2016-11-23|斯特拉托斯卡莱有限公司|用于最小化工作负荷空闲时间和工作负荷间干扰的网络和存储i/o请求的排序方案| GB2545508B|2015-12-18|2019-04-10|Imagination Tech Ltd|Controlling operation of a GPU|
法律状态:
2010-12-15| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101214 | 2012-08-01| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120801 | 2012-10-03| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121002 | 2012-12-27| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121226 | 2013-05-31| TRDD| Decision of grant or rejection written| 2013-06-05| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130604 | 2013-07-11| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130702 | 2013-07-12| R150| Certificate of patent or registration of utility model|Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5312478 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 | 2016-07-12| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2017-07-11| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2017-11-01| S533| Written request for registration of change of name|Free format text: JAPANESE INTERMEDIATE CODE: R313533 | 2017-11-10| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 | 2018-07-10| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2019-07-09| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-07-02| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2021-07-01| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|